
//可选的独立配置文件，提供这些文件时可免去修改app.js源码。这些配置文件需要自己编写，参考https://github.com/xiangyuecn/Recorder/tree/master/app-support-sample 目录内的这两个演示用的配置文件代码。
//你可以直接copy /app-support-sample 目录内的两个演示配置文件改改后，就能正常使用了
//【需修改成你自己的文件路径】【js文件里面的代码也需修改后才可用】
import '../copy/native-config.js' //可选开启native支持的相关配置
import '../copy/ios-weixin-config.js' //可选开启ios weixin支持的相关配置


/********加载RecordApp需要用到的支持文件*********/
//必须引入的app核心文件，换成require也是一样的。注意：app.js会自动往window下挂载名称为RecordApp对象，全局可调用window.RecordApp，也许可自行调整相关源码清除全局污染
import RecordApp from 'recorder-core/src/app-support/app'
//可选开启Native支持，需要引入此文件
import 'recorder-core/src/app-support/app-native-support'
//可选开启IOS上微信录音支持，需要引入此文件
import 'recorder-core/src/app-support/app-ios-weixin-support'


/*********加载Recorder需要的文件***********/
//必须引入的核心，所有需要的文件都应当引入，引入后会检测到组件已自动加载
//不引入也可以，app.js会去用script动态加载，应确保app.js内BaseFolder目录的正确性(参阅RecordAppBaseFolder)，否则会导致404 js加载失败
import Recorder from 'recorder-core'

//【要打包到一个js就解开注释】本demo是通过script动态引入这些引擎js文件
//需要使用到的音频格式编码引擎的js文件统统加载进来，这些引擎文件会比较大
import 'recorder-core/src/engine/mp3'
import 'recorder-core/src/engine/mp3-engine'

import 'recorder-core/src/engine/pcm'
import 'recorder-core/src/engine/wav'
import 'recorder-core/src/engine/beta-ogg-engine'
import 'recorder-core/src/engine/beta-ogg'
import 'recorder-core/src/engine/beta-amr'
import 'recorder-core/src/engine/beta-webm'
import 'recorder-core/src/engine/beta-amr-engine'

//由于大部分情况下ios-weixin的支持需要用到amr解码器，应当把amr引擎也加载进来，这些引擎文件会比较大
//【解开】import 'recorder-core/src/engine/beta-amr'
//【解开】import 'recorder-core/src/engine/beta-amr-engine'
//【解开】import 'recorder-core/src/engine/wav' //amr依赖了wav引擎

//可选的扩展支持项
import 'recorder-core/src/extensions/waveview'

RecordApp.AlwaysUseWeixinJS = !!(+localStorage["RecordApp_AlwaysUseWeixinJS"] || 0);
RecordApp.AlwaysAppUseJS = !!(+localStorage["RecordApp_AlwaysAppUseJS"] || 0);

//立即加载环境，自动把Recorder加载进来
RecordApp.Install(function () {
  console.log("RecordApp.Install成功");
}, function () {
  var msg = "RecordApp.Install出错：" + err;
  console.log(msg);
  alert(msg);
});

export function recReq() {
  RecordApp.RequestPermission(function () {
    console.log("录音权限获取成功")
  }, function (err, isUserNotAllow) {
    if(isUserNotAllow){
      console.log("录音链接失败")
    }
  });
}

export function recStart(rec) {
  if (!rec || !RecordApp.Current) {
    console.log("未请求权限")
    return;
  };

  if (RecordApp.Current == RecordApp.Platforms.Weixin) {
    console.log("正在使用微信JsSDK，录音过程中不会有任何回调，不要惊慌")
  } else if (RecordApp.Current == RecordApp.Platforms.Native) {
    console.log("正在使用Native录音，底层由App原生层提供支持")
  } else {
    console.log("正在使用H5录音，底层由Recorder直接提供支持")
  };

  var set = {
    type: "wav"
    , bitRate: 16
    , sampleRate: 16000
  };

  RecordApp.Start(set, function () {
    // This.reclog(, 2);
    console.log("录制中")
    //此处创建这些音频可视化图形绘制浏览器支持妥妥的
    // This.wave = Recorder.WaveView({ elem: ".ctrlProcessWave" });
  }, function (err) {
    // This.reclog(RecordApp.Current.Key + "开始录音失败：" + err, 1);
    console.log("开始录音失败")
  });
}


